{ "cells": [ { "attachments": {}, "cell_type": "markdown", "id": "c79330fa", "metadata": {}, "source": [ "# Basic PVT Setup and Example" ] }, { "cell_type": "raw", "id": "c4080915", "metadata": { "raw_mimetype": "text/restructuredtext" }, "source": [ " Import :class:`~ia.gaius.manager.AgentManager` from module :py:mod:`ia.gaius.manager`" ] }, { "cell_type": "code", "execution_count": 1, "id": "a5063878", "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/usr/lib/python3/dist-packages/paramiko/transport.py:219: CryptographyDeprecationWarning: Blowfish has been deprecated\n", " \"class\": algorithms.Blowfish,\n" ] } ], "source": [ "import time\n", "from ia.gaius.manager import AgentManager\n", "from ia.gaius.pvt import PerformanceValidationTest" ] }, { "cell_type": "code", "execution_count": 2, "id": "3a540e1f", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'0.4.0'" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "import ia\n", "ia.__version__" ] }, { "cell_type": "code", "execution_count": 3, "id": "f5170111", "metadata": {}, "outputs": [], "source": [ "am = AgentManager()" ] }, { "cell_type": "code", "execution_count": 4, "id": "b4358862", "metadata": {}, "outputs": [], "source": [ "agent = am.start_agent(genome_name='simple.genome',\n", " agent_id='pvt',\n", " user_id='tutorial',\n", " agent_name='tutorial-pvt').get_agent_client()" ] }, { "cell_type": "code", "execution_count": 5, "id": "cfafe1bc", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{'connection': 'okay', 'agent': 'simple'}" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "time.sleep(0.5)\n", "agent.connect()" ] }, { "cell_type": "code", "execution_count": 6, "id": "24716f91", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{'AUTOLEARN': False,\n", " 'PREDICT': True,\n", " 'SLEEPING': False,\n", " 'SNAPSHOT': False,\n", " 'emotives': {},\n", " 'last_learned_model_name': '',\n", " 'models_kb': '{KB| objects: 0}',\n", " 'name': 'P1',\n", " 'num_observe_call': 0,\n", " 'size_WM': 0,\n", " 'target': '',\n", " 'time': 0,\n", " 'vector_dimensionality': -1,\n", " 'vectors_kb': '{KB| objects: 0}'}" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "agent.show_status()" ] }, { "cell_type": "code", "execution_count": 7, "id": "d4be3778", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{'genes': {'SORT': 'sorting',\n", " 'always_update_frequencies': False,\n", " 'auto_learn_algorithm': 'basic',\n", " 'auto_learn_metric': 'wm_size',\n", " 'classifier': 'CVC',\n", " 'enable_genome_snapshots': 'genome snapshots enabled',\n", " 'enable_snapshots': 'WM snapshots disabled',\n", " 'max_predictions': 100,\n", " 'max_sequence_length': 0,\n", " 'near_vector_count': 3,\n", " 'persistence': 5,\n", " 'predict_on_nth_event': 1,\n", " 'prediction_sort_metric': 'potential',\n", " 'prediction_threshold': 0,\n", " 'prediction_threshold_direction': 'greater than',\n", " 'prediction_threshold_metric': 'potential',\n", " 'quiescence': 3,\n", " 'recall_threshold': 0.1,\n", " 'search_depth': 10,\n", " 'smoothness': 3,\n", " 'snapshot_gen_predictions': 'prediction generation on snapshot load disabled',\n", " 'snapshot_sync_keys': '[]',\n", " 'wm_resolution': 'symbol'}}" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "agent.get_all_genes(nodes=['P1'])" ] }, { "attachments": {}, "cell_type": "markdown", "id": "aa136e7e", "metadata": {}, "source": [ "## Iris Dataset Training" ] }, { "cell_type": "raw", "id": "57088ff8", "metadata": { "raw_mimetype": "text/restructuredtext" }, "source": [ "Train and test on `iris-flowers `_ dataset using the :class:`~ia.gaius.pvt.PerformanceValidationTest` class from :py:mod:`ia.gaius.pvt`. This dataset is stored locally in GDF format." ] }, { "cell_type": "raw", "id": "d63d410e", "metadata": { "raw_mimetype": "text/restructuredtext" }, "source": [ "Configure the test to:\n", " * Conduct a classification test\n", " * Train using an 80/20 training/testing data split\n", " * Use 100% of the dataset (150 records)\n", " * learn after guessing during training phase (test_prediction_strategy = `continuous`)\n", " * Clear All Memory on agent before conducting PVT\n", " * Shuffle the data so it is in random order" ] }, { "cell_type": "code", "execution_count": 8, "id": "7236efd3", "metadata": {}, "outputs": [], "source": [ "pvt = PerformanceValidationTest(agent=agent,\n", " ingress_nodes=['P1'],\n", " query_nodes=['P1'],\n", " test_count=1,\n", " dataset_percentage=100,\n", " training_percentage=80,\n", " test_type='classification',\n", " dataset='../../../tests/datasets/shuffled_iris_flowers',\n", " test_prediction_strategy='noncontinuous',\n", " clear_all_memory_before_training=True,\n", " turn_prediction_off_during_training=False,\n", " shuffle=True,\n", " PLOT=True)" ] }, { "cell_type": "code", "execution_count": 9, "id": "4b7fca93", "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "211966442aa84b419523059539a9a225", "version_major": 2, "version_minor": 0 }, "text/plain": [ " 0%| 0/120 [? ? records/s]" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "0b763b1a3f5040dfbc7ee93f4233ab60", "version_major": 2, "version_minor": 0 }, "text/plain": [ " 0%| 0/30 [? ? records/s]" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "pvt.conduct_pvt()" ] }, { "cell_type": "code", "execution_count": 10, "id": "6084f06d", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{'training_counter': {'virginica': 46, 'setosa': 37, 'versicolor': 37},\n", " 'testing_counter': {'versicolor': 13, 'setosa': 13, 'virginica': 4},\n", " 'counter': {'virginica': 50, 'setosa': 50, 'versicolor': 50},\n", " 'predicted_class_statistics': {'versicolor': 13,\n", " 'setosa': 13,\n", " 'virginica': 4},\n", " 'response_counts': 30.0,\n", " 'true_positive': 28.0,\n", " 'false_positive': 2.0,\n", " 'precision': 93.33333333333333,\n", " 'f1': 0.9655172413793104,\n", " 'accuracy': 93.33333333333333,\n", " 'response_percentage': 100.0,\n", " 'unknown_percentage': 0.0,\n", " 'true_negative': 0.0,\n", " 'false_negative': 0.0,\n", " 'FPR': 100.0,\n", " 'FDR': 6.666666666666667,\n", " 'TNR': 0.0,\n", " 'TPR': 100.0,\n", " 'NPV': 0.0,\n", " 'FNR': 0.0,\n", " 'FOR': 0.0,\n", " 'LR+': 1.0,\n", " 'LR-': 0.0,\n", " 'PT': 0.5,\n", " 'TS': 93.33333333333333}" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "pvt.pvt_results[0]['P1']['metrics']" ] }, { "cell_type": "code", "execution_count": 11, "id": "4f3f6115", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'deleted /home/alexlukens/.local/share/IA_SDK_AgentManager/agents/tutorial-pvt'" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "am.delete_agent('tutorial-pvt')" ] } ], "metadata": { "celltoolbar": "Raw Cell Format", "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.8.10" } }, "nbformat": 4, "nbformat_minor": 5 }